nacos的持久化配置可能存在的问题 |
您所在的位置:网站首页 › nacos derby-data目录报错 › nacos的持久化配置可能存在的问题 |
nacos的持久化配置可能存在的问题
文章目录
nacos的持久化配置可能存在的问题一、基础背景二、配置持久化较简单方式——下载遍以后压缩包三、配置持久化坑比较多的方式——Docker3.1、为什么推荐使用环境变量呢?3.2、为什么不直接把conf挂载到本地修改呢
一、基础背景
持久化配置与版本号无关 配置有两种方式 docker 下载编译后压缩包方式 下载源码编译后运行(坑较多,忽略) 二、配置持久化较简单方式——下载遍以后压缩包下载之后打开conf目录,修改其中的application.properties文件。 有些文章可能会提到加上这一行: # 启用 Nacos 持久化功能 nacos.core.persist.enabled=true实测并不需要。 修改之后打开本地http://localhost:8848/,会发现配置列表已经加载数据库里的信息。 如上图,全部信息展示完毕,持久化过程完成。 当然,前提是数据库里已经有相应的表信息,建表语句在conf文件夹里面的sql文件可以作为参考。 三、配置持久化坑比较多的方式——Docker首先是拉取镜像(个人用的是M1芯片的Mac,所以拉取的是第三方nacos) 拉取镜像 docker pull nacos/nacos-server 运行容器 docker run --name nacos-server -e MODE=standalone -p 8848:8848 -d nacos/nacos-server这个命令会启动一个名为 nacos-server 的容器,并将容器的 8848 端口映射到主机的 8848 端口。在容器启动后,可以通过访问 http://localhost:8848/nacos 来访问 Nacos 控制台。 如果需要在容器启动时指定更多的配置参数,可以将它们添加到 docker run 命令中。例如,以下命令将在容器启动时指定 Nacos 的数据库连接信息: docker run --name nacos-server -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=mysql-host -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=nacos -e MYSQL_SERVICE_PASSWORD=nacos -p 8848:8848 -d nacos/nacos-server-e之后可以加很多很多环境变量,比如我们在第一部分配置的url等,在这里推荐使用环境变量的方式。 3.1、为什么推荐使用环境变量呢?我们利用下面的命令进入这个容器 docker exec -it nacos-server /bin/bash再利用ls,ll等命令展示内部结构,在/home/nacos/conf里面会发现我们在第一部分所配置的文件,如下图。 可以看到,Files里面有很多文件。 所以我们必须要强调,docker内部和我们直接下载编译好的发行版所显示的内容是大不相同的。 例如在/home/nacos/conf里面我们会发现application.properiies文件: 我们会发现,这个文件与我们之前所看见的配置文件是完全不同的,这一点尤为需要注意。 被**${}**包裹的内容就是环境变量。我们也会发现里面有很多的环境变量。 这正是docker所推崇的,也是本人建议采纳的。 3.2、为什么不直接把conf挂载到本地修改呢有人可能会思考这个问题,利用**-v**命令将文件挂载出去岂不是更方便,利用刚才说的控制环境变量的方式,每当要修改的时候,必须要先关掉容器,再打开一个新容器。 **额,我就是这么想的。。。**所以改了一个一上午的bug。 挂载容易,但千万要记住,不可以只把application.properiies文件在本地的目录上覆盖。因为Docker使用的是**“绑定挂载”(bind mount)**技术,它将本地文件夹与容器中的文件夹直接连接起来,而不是在容器内部创建一个新的文件夹。因此,如果本地文件夹中存在与容器中的文件夹相同路径和名称的文件,则会覆盖容器中的文件。 正如我们刚才所提到的,docker里面的conf目录与我们直接下载的conf目录大不一样。**所以如果要挂载,必须把里面原有的数据都挂载出来。**如果字挂载一个文件,就会报错。 像这样。这个错误是说从日志中可以看出,Nacos启动失败的原因可能是由于无法找到日志配置文件导致的。个人怀疑是缺少了nacos-logback.XML文件,当然,这只是举个例子,我相信错误肯定不止于此。 以上就是关于nacos持久化的介绍。 改了一上午bug,有点累。。。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |